const Router = require('koa-router')
const { authenticateToken } = require('../middleware/authMiddleware') // 导入中间件
const UserController = require('../controllers/user')
const router = new Router({ prefix: '/user' })

// 用户模块
router.post('/login', UserController.login) // 登录接口
router.post('/register', UserController.register) // 注册接口
router.post('/logout', authenticateToken, UserController.logout) // 退出登录接口（需要认证）
router.get('/getUserInfo', authenticateToken, UserController.getUserInfo) // 获取当前用户信息（需要认证）
router.put('/updateUserInfo', authenticateToken, UserController.updateUserInfo) // 修改用户信息（需要认证）
router.post('/follow', authenticateToken, UserController.follow) // 关注用户（需要认证）
router.delete('/cancelFollow', authenticateToken, UserController.cancelFollow) // 取消关注用户（需要认证）
router.post('/delAccount', authenticateToken, UserController.delAccount) // 注销账号（需要认证）
router.post('/sendEmailCode', authenticateToken, UserController.sendEmailCode) // 发送邮箱验证码（需要认证）
router.post('/resetPassword', authenticateToken, UserController.resetPassword) // 重置密码（需要认证）
router.post('/bindPhone', authenticateToken, UserController.bindPhone) // 绑定手机号（需要认证）
router.get('/findFollowState', authenticateToken, UserController.findFollowState) // 查询当前用户关注状态（需要认证）
router.get('/getChatRecord', authenticateToken, UserController.getChatRecord) // 获取聊天记录（需要认证）
router.put('/updateRevokeState', authenticateToken, UserController.updateRevokeState) // 修改撤回状态（需要认证）
router.get('/getNoReadMsgList', authenticateToken, UserController.getNoReadMsgList) // 获取用户未读消息列表（需要认证）
router.get('/getNoReadMsgCount', authenticateToken, UserController.getNoReadMsgCount) // 获取用户未读消息数量（需要认证）
router.put('/updateMsgState', authenticateToken, UserController.updateMsgState) // 批量修改消息状态（将未读设为已读）（需要认证）
router.delete('/revokeMsg', authenticateToken, UserController.revokeMsg) // 撤回消息（需要认证）
router.get('/getFriendList', authenticateToken, UserController.getFriendList) // 获取好友列表（需要认证）
router.put('/updateFriendMsgState', authenticateToken, UserController.updateFriendMsgState) // 将好友发送的消息，设为已读（需要认证）
router.post('/refreshToken', UserController.refreshToken) // 刷新令牌

module.exports = router
